package cn.tedu.csmall.product.mapper;

import cn.tedu.csmall.product.pojo.entity.Album;
import cn.tedu.csmall.product.pojo.entity.Picture;
import cn.tedu.csmall.product.pojo.vo.PictureListVO;
import cn.tedu.csmall.product.pojo.vo.PictureStandardVO;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface PictureMapper {
    /**
     * 添加图片
     * @param picture       要添加的图片对象
     * @return              受影响的行数
     */
    int insert(Picture picture);

    /**
     * 批量添加图片
     * @param list  要添加的图片对象集合
     * @return      受影响的行数
     */
    int insertBatch(List<Picture> list);

    /**
     * 根据id删除图片
     * @param id   要删除的图片id
     * @return      受影响的行数
     */
    int deleteById(Long id);

    /**
     * 根据id批量删除图片
     * @param ids   要删除的图片id数组
     * @return      受影响的行数
     */
    int deleteByIds(Long[] ids);

    /**
     * 根据id修改图片信息
     * @param picture   要修改的图片信息
     * @return          影响的行数
     */
    int updateById(Picture picture);

    /**
     * 统计图片总数
     * @return  图片总数
     */
    int count();

    /**
     * 根据id查询图片的标准信息
     * @param id       要查询的图片id
     * @return          图片的标准信息
     */
    PictureStandardVO getStandardPictureById(Long id);

    /**
     * 查询图片列表信息
     * @return  图片列表信息
     */
    List<PictureListVO> listPicture();

    /**
     * 查询相册id关联的图片数量
     * @param albumId
     * @return
     */
    int countByAlbumId(Long albumId);

}
